package org.fly.jingwei.dao;

import org.fly.jingwei.entity.SlaveEntity;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author leo
 * @date 2017/2/28
 */
@Repository
public interface SlaveDao {

    /**
     * @return
     */
    Integer getSlaveTotalCount();

    /**
     * @param id
     * @return
     */
    SlaveEntity getSlaveById(Integer id);

    /**
     * @param userGroupName
     * @return
     */
    List<SlaveEntity> getAllSlave(String userGroupName);

    /**
     * @param hostName
     * @return
     */
    SlaveEntity getSlaveByHostName(String hostName);

    /**
     * @param start
     * @param limit
     * @param userGroupName
     * @return
     */
    List<SlaveEntity> findSlaveByPageInfo(Integer start, Integer limit, String userGroupName);

    /**
     * @param slave
     */
    void addSlave(SlaveEntity slave);

    /**
     * @return
     */
    Integer selectMaxId();

    /**
     * @param slaveId
     */
    void deleteTransSlave(Integer slaveId);

    /**
     * @param slaveId
     */
    void deleteSlaveUserGroup(Integer slaveId);

    /**
     * @param slaveId
     */
    void deleteSlaveServer(Integer slaveId);

    /**
     * @param slave
     */
    void updateSlaveServer(SlaveEntity slave);
}
